home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 February
/
EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso
/
earcd
/
comm2
/
zpont311.lha
/
zpoint-3.11
/
Rexx
/
LhaEx.zprx
< prev
next >
Wrap
Text File
|
1995-01-16
|
5KB
|
180 lines
/*
$VER: LhaExtract.zprx 1.1 (28.12.94) Copyright (c) Nils Görs.
Ein ARexx-Skript für "Zodiac's Point"
FUNKTIONSBESCHREIBUNG:
Dieses Skript erstellt, mittels der "rexxtricks.library", eine
Liste des LhA-Archives. Aus dieser Liste heraus können dann
einzelne Dateien aus dem LhA-Archiv entpackt werden.
INSTALLATION:
Kopieren sie dieses Skript in das Rexx-Verzeichnis von ZP und
fügen sie danach der Datei 'fkeys.zp' auf Wunsch den Eintrag
"F1:SYS:Rexxc/RX ZPOINT:Rexx/LhaEx.zprx %s" hinzu.
AUTOR DIESES SKRIPTS:
Nils Görs Tel. : +49 (0)202 784258
Kaiserstr. 97a EMail: N.Goers@Art-Line.wupper.de
42329 Wuppertal oder über das ZP-Support-Brett.
Verwenden Sie bitte nach Möglichkeit elektronische Post!
Das Skript benötigt Jürgen Kohrmeyers "rexxtricks.library" (>=37.20)
und die "rexxreqtools.library" von Nico François.
*/
/*Wie breit darf das Listview-Fenster denn sein,mein Herr ?*/
Fensterbreite = 600
/* Default-Zielverzeichnis */
destdir = "ram:"
/* Wenn dieser Wert auf 1 steht, dann wird das
Zielverzeichnis erfragt (wohin soll entpackt werden ?) */
DirErfragen = 1
/* Zielverzeichnis über einen String oder über einen
Directoryrequest erfragen ?
0 = Directoryrequest
1 = Stringrequest */
ReqErfragen = 0
/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* Bitte geben Sie hier ihre Präferenzen ein ! *
*******************************************************************/
/*******************************************************************
* Bitte unterhalb dieser Zeile nichts mehr verändern! *
*******************************************************************/
NL = '0a'x
Anf = '"'
OPTIONS RESULTS
/* ------ von welchem ZP Port wurde das Script aufgerufen ? ------ */
PARSE ARG zpPort
IF zpPort == "" THEN
zpPort = "ZPoint"
ADDRESS VALUE zpPort
/* öffne alle nötigen libraries - wenn nicht möglich Programmende */
IF ~SHOW('LIBRARIES','rexxreqtools.library') THEN
IF ~ADDLIB('rexxreqtools.library',0,-30,0) THEN
EXIT
IF ~SHOW('LIBRARIES','rexxtricks.library') THEN
IF ~ADDLIB('rexxtricks.library',0,-30,0) THEN
EXIT
/* ------------------------ Hauptprogramm ------------------------ */
WHICHLEVEL
IF (RESULT ~== 'BOARD') THEN
DO
CALL rtezrequest('Bitte erst ein File auswählen!','OK','Fehler','rt_pubscrname='zpPort)
EXIT
END
SAVEMESSAGEBODY 'T:Tmp.lha'
IF ~OPEN(dat,"t:Tmp.lha",Read) THEN/* öffne File */
DO /* hat nicht geklappt! */
CALL rtezrequest("File: T:TMP.LHA nicht gefunden!", " ENDE ",,"rt_pubscrname="zpPort)
EXIT /* und Program beenden! */
END
ELSE /* File konnte geöffnet werden! */
CALL SEEK(dat,2,Begin) /* springe an das zweite Byte im File */
String=READCH(dat,3) /* und lese ab dort drei Zeichen */
IF COMPARE(String,"-lh") ~== 0 THEN /* testen, ob es sich um ein
LhA Archive handelt */
DO
CALL rtezrequest('Dies ist kein LhA Archiv !','OK','Fehler',"rt_pubscrname="zpPort)
CALL CLOSE(dat)
ADDRESS COMMAND 'DELETE t:Tmp.lha QUIET >NIL:'
EXIT
END
CALL CLOSE(dat)
ADDRESS COMMAND
'LHA vq T:Tmp.lha >t:TmpDir'
IF ~READFILE("t:tmpDir",zeile) THEN DO
CALL rtezrequest("LHA-Fileliste konnte nicht gelesen werden",,,"rt_pubscrname="zpPort)
'Delete T:TmpDir QUIET >NIL:'
'Delete T:Tmp.lha QUIET >NIL:'
EXIT
END
lv = 0
DO i = 3 TO zeile.count -1
liste.lv = (zeile.i)
lv = lv + 1
END
liste.count = lv
fenster.title = 'Bitte wählen'
fenster.gadgettext= 'mit _Unterv.|_ohne Unterv.|_Abbrechen'
fenster.pubscreen = zpPort
fenster.width = fensterbreite
fenster.font = 'SCREEN'
fenster.sort = 'TRUE'
IF VIEWLIST('liste','fenster','destvar') THEN DO
do i=0 to destvar.count
if pos(" ",destvar.i)>0 then destvar.i='"'destvar.i'"'
end
ok=writefile("t:tmpdir",destvar)
IF direrfragen = 1 THEN
DO
IF reqerfragen == 1 THEN DO
destdir = rtgetstring(,'Bitte Zielverzeichnis eingeben' || NL ||,
'z.B. T: oder sys:tools/','Verzeichnis ?','OK',"rt_pubscrname="zpPort,res)
IF RES == 0 THEN DO
call DELETING
EXIT
END
END
ELSE
destdir = rtfilerequest(, , "Bitte Zielverzeichnis auswählen",, "rtfi_flags = freqf_nofiles",
"rtfi_initialpath="destdir "rt_pubscrname="zpPort,res)
IF RES == 0 THEN DO
call DELETING
EXIT
END
END
IF destvar.gadget == 2 THEN
'LHA -it:tmpdir -x2 e T:Tmp.lha' Anf||destdir||Anf
ELSE
'LHA -it:tmpdir x T:Tmp.lha' Anf||destdir||Anf
END
Deleting:
'Delete t:tmpdir QUIET >NIL:'
'Delete T:Tmp.lha QUIET >NIL:'